SQL (Structured Query Language) ডাটাবেস পরিচালনার জন্য ব্যবহৃত একটি শক্তিশালী ভাষা, যার মাধ্যমে আপনি ডাটাবেসের মধ্যে থাকা ডেটা অনুসন্ধান, সংকলন এবং পরিচালনা করতে পারেন। SQL এর মধ্যে অনেক ধরনের functions এবং complex conditions রয়েছে, যা ডেটা বিশ্লেষণে এবং সূক্ষ্ম কুয়েরি তৈরিতে অত্যন্ত কার্যকর। এখানে আমরা SQL functions এবং complex conditions এর ব্যবহার সম্পর্কে বিস্তারিত আলোচনা করব।
SQL Functions
SQL এ বিভিন্ন ধরনের ফাংশন রয়েছে, যা ডেটা প্রসেসিং এবং বিশ্লেষণে ব্যবহৃত হয়। এগুলোর মধ্যে রয়েছে Aggregate Functions, Scalar Functions, এবং Date Functions।
Aggregate Functions
Aggregate Functions ডেটার একটি গ্রুপের উপর গণনা বা পরিসংখ্যান তৈরির জন্য ব্যবহৃত হয়। এগুলি সাধারণত GROUP BY ক্লজের সাথে ব্যবহার করা হয়।
COUNT(): নির্দিষ্ট কলামে কতটি রেকর্ড আছে তা গোনে।
SELECT COUNT(*) FROM Employees;এটি সমস্ত রেকর্ড গুনবে।
SUM(): নির্দিষ্ট কলামের মানের মোট যোগফল।
SELECT SUM(Salary) FROM Employees WHERE Department = 'IT';এটি
Salaryকলামের সমস্ত মানের যোগফল দেখাবে যেখানে Department 'IT'।AVG(): নির্দিষ্ট কলামের গড় মান।
SELECT AVG(Salary) FROM Employees;এটি সমস্ত Salary মানের গড় দেখাবে।
MAX(): নির্দিষ্ট কলামের সর্বোচ্চ মান।
SELECT MAX(Salary) FROM Employees;এটি Salary কলামের সর্বোচ্চ মান দেখাবে।
MIN(): নির্দিষ্ট কলামের সর্বনিম্ন মান।
SELECT MIN(Salary) FROM Employees;এটি Salary কলামের সর্বনিম্ন মান দেখাবে।
Scalar Functions
Scalar Functions ডেটার একক মানের উপর কাজ করে এবং প্রতিটি রেকর্ডের জন্য একটি নতুন মান প্রদান করে।
UPPER(): একটি স্ট্রিংয়ের সব অক্ষর বড় হাতের বানায়।
SELECT UPPER(EmployeeName) FROM Employees;LOWER(): একটি স্ট্রিংয়ের সব অক্ষর ছোট হাতের বানায়।
SELECT LOWER(EmployeeName) FROM Employees;LENGTH(): একটি স্ট্রিংয়ের দৈর্ঘ্য জানায়।
SELECT LENGTH(EmployeeName) FROM Employees;ROUND(): একটি সংখ্যাকে নির্দিষ্ট দশমিক পর্যন্ত রাউন্ড করে।
SELECT ROUND(Salary, 2) FROM Employees;CONCAT(): দুটি স্ট্রিং যোগ করে।
SELECT CONCAT(FirstName, ' ', LastName) AS FullName FROM Employees;
Date Functions
Date Functions ডেটা বা সময়ের সাথে কাজ করতে ব্যবহৃত হয়।
NOW(): বর্তমান তারিখ এবং সময় ফেরত দেয়।
SELECT NOW();CURDATE(): বর্তমান তারিখ ফেরত দেয় (সময় ছাড়া)।
SELECT CURDATE();YEAR(): একটি তারিখ থেকে বছর বের করে।
SELECT YEAR(HireDate) FROM Employees;MONTH(): একটি তারিখ থেকে মাস বের করে।
SELECT MONTH(HireDate) FROM Employees;DATE_ADD(): একটি নির্দিষ্ট সময় যোগ করে।
SELECT DATE_ADD(HireDate, INTERVAL 1 MONTH) FROM Employees;
Complex Conditions
SQL এর Complex Conditions ব্যবহার করে আপনি একাধিক শর্তের মধ্যে সম্পর্ক স্থাপন করতে পারেন, যেমন AND, OR, NOT, এবং BETWEEN। এই শর্তগুলি জটিল কুয়েরি তৈরির জন্য গুরুত্বপূর্ণ।
AND Condition
AND শর্ত ব্যবহার করে একাধিক শর্ত যোগ করা হয়, এবং এটি তখনই সত্য হয় যখন সব শর্ত পূর্ণ হয়।
SELECT * FROM Employees
WHERE Department = 'IT' AND Salary > 50000;
এখানে Department 'IT' এবং Salary 50000 এর বেশি এমন রেকর্ডগুলো ফিল্টার করা হবে।
OR Condition
OR শর্ত ব্যবহার করে একাধিক শর্ত দেয়া হয়, এবং এটি তখন সত্য হয় যখন কোন একটি শর্ত পূর্ণ হয়।
SELECT * FROM Employees
WHERE Department = 'IT' OR Department = 'HR';
এখানে Department 'IT' অথবা 'HR' এমন রেকর্ডগুলো ফিল্টার করা হবে।
NOT Condition
NOT শর্ত ব্যবহার করে আপনি একটি শর্তের বিরোধিতা করতে পারেন।
SELECT * FROM Employees
WHERE NOT Department = 'IT';
এখানে Department 'IT' নয় এমন সব রেকর্ড ফিল্টার করা হবে।
BETWEEN Condition
BETWEEN শর্ত একটি রেঞ্জ নির্ধারণ করতে ব্যবহৃত হয়।
SELECT * FROM Employees
WHERE Salary BETWEEN 30000 AND 50000;
এখানে Salary 30000 থেকে 50000 এর মধ্যে এমন রেকর্ডগুলো ফিল্টার করা হবে।
LIKE Condition
LIKE শর্ত স্ট্রিংয়ের প্যাটার্ন মেলানোর জন্য ব্যবহৃত হয়। সাধারণত ওয়াইল্ডকার্ড (Wildcards) যেমন % এবং _ ব্যবহৃত হয়।
SELECT * FROM Employees
WHERE EmployeeName LIKE 'J%';
এখানে যেসব EmployeeName 'J' দিয়ে শুরু হয় এমন রেকর্ডগুলো ফিল্টার করা হবে।
IN Condition
IN শর্ত ব্যবহার করে আপনি একাধিক মানের মধ্যে একটি নির্দিষ্ট মান মেলাতে পারেন।
SELECT * FROM Employees
WHERE Department IN ('IT', 'HR', 'Finance');
এখানে Department 'IT', 'HR', অথবা 'Finance' এমন রেকর্ডগুলো ফিল্টার করা হবে।
EXISTS Condition
EXISTS শর্ত ব্যবহার করে একটি সাবকুয়েরি (Subquery) এর ফলাফল পরীক্ষা করা হয়। যদি সাবকুয়েরি কোন রেকর্ড রিটার্ন করে, তাহলে শর্তটি সত্য হয়।
SELECT * FROM Employees
WHERE EXISTS (SELECT * FROM Departments WHERE DepartmentName = 'IT');
এখানে যদি 'IT' নামক একটি Department থাকে, তবে Employees টেবিল থেকে সমস্ত রেকর্ড রিটার্ন হবে।
Conclusion
SQL ফাংশন এবং জটিল শর্তগুলো ডেটাবেস থেকে ডেটা প্রসেসিং এবং বিশ্লেষণে অত্যন্ত গুরুত্বপূর্ণ ভূমিকা পালন করে। Aggregate Functions যেমন COUNT, SUM, এবং AVG ডেটা বিশ্লেষণ করার জন্য ব্যবহার করা হয়, যখন Scalar Functions এবং Date Functions ডেটার মান পরিবর্তন ও নির্দিষ্ট সময় ফিল্টার করার জন্য ব্যবহৃত হয়। Complex Conditions ব্যবহার করে আপনি ডেটাবেস থেকে নির্দিষ্ট মান বা রেকর্ড গুলি আরো সূক্ষ্মভাবে ফিল্টার করতে পারেন, যা আপনাকে আরো কার্যকরী এবং নির্ভুল কুয়েরি তৈরি করতে সহায়তা করবে।
Read more